The Global Computer Network, more commonly referred to as the Internet, is comprised of many individual networks, such as NSFNet and the Defense Data Network, along with gateways to others, such as Bitnet. The Internet is a Transmission Control Protocol/Internet Protocol (TCP/IP) based network linking millions of computers around the world. The use of TCP/IP allows a wide variety of computers to communicate with one another including Unix workstations, personal computers running MS DOS, Windows, Linux, OS2, MacOS, BeOS, IBM mainframes, DEC mini-computers, and even Cray supercomputers.
The Word Wide Web (WWW) is a network of servers on the Internet, each of which has one or more home pages, and which provides information and hypertext links to other documents on that and other servers. The Word Wide Web was developed in 1989 by Tim Berners-Lee at the European Laboratory for Particle Physics (CERN). World Wide Web servers communicate with clients by using the Hypertext Transfer Protocol (HTTP). The resources on the Worldwide Web are provided with Uniform Resource Locators (URLs) which provide an address for the servers that are part of the World Wide Web portion of the Internet. The documents which make up the substance of the World Wide Web are typically viewed using specialized software packages referred to as browsers. When a browser is directed to a URL and the hypertext document associated with URL is displayed by the browser or an associated helper application.
Uniform Resource Locators are a naming scheme for specifying how and where to find any Internet server resource, such as Gopher, FTP, WAIS or Web servers. World Wide Web hypertext documents use URLs to reference other hypertext resources.
The hypertext transfer protocol (HTTP) is an Internet protocol designed expressly for the rapid distribution of hypertext documents. Like other Internet tools, such as FTP, WAIS, or Gopher, HTTP is a client-server protocol. In the client-server model, a client program running on the user's machine sends a message requesting service to a server program running on another machine on the Internet. The server responds to the request by sending a message back to the client. In exchanging these messages the client and the server use a well understood protocol. FTP, WAIS, and Gopher are other examples of Internet client-server protocols, all of which are accessible to a World Wide Web browser.
The HTTP protocol is designed expressly for the delivery of hypertext documents. At the simplest level, HTTP servers act much like anonymous FTP servers, delivering files when clients request them. However, HTTP servers support additional important features including the ability to return to the client not just files, but also information generated by programs running on the server and the ability to take data sent from the client and pass this information on to other programs on the server for further processing. These special server site programs are called gateway programs, because they usually act as a gateway between the HTTP server and other local resources, such as databases. Just as an FTP server can access many files, an HTTP server can access many gateway programs; in both cases, you can specify which resources, files, or programs you want through a URL. The interaction between the server and these gateway programs is governed by the Common Gateway Interface (CGI) specifications. Using the CGI specifications, a programmer can easily write simple programs or scripts to process user queries, interrogate data bases, make images that respond to mouse clicks, download a program to the client machine or any number of other functions.
The Hypertext Markup Language, or HTML, is the language used to prepare hypertext documents. HTML contains commands, called tags, to mark text as headings, paragraphs, lists, quotations, emphasize and so on. It also has tags for including images within the documents, for including fill-in forms that accept user input, and most importantly, for including hypertext links connecting the document being read to other documents or Internet resources such as WAIS databases and anonymous FTP sites. Hypertext links allow a person to click on a string of highlighted text and access a new document, an image, or a movie file from a computer thousands of miles away. The document is specified by URL, which is included in the HTML markup instruction and which is used by the browser to find the designated resource. URLs can point to other HTML documents, pictures, sound files, movie files, or even database search engines. They can be on a local computer or anywhere on the Internet. They can be accessed from HTTP servers or from FTP, Gopher, WAIS, or other servers.
Internet Protocol Multicast (IP Multicast) is a client-server protocol which provides one-to-many and many-to-one communications capability across the Internet. This is substantially different from the traditional one-to-one or point-to-point connections that most current LAN and WAN applications support. Multicasting allows for video conferencing, electronic whiteboards and other multimedia uses for networks as well as non-multimedia applications such as updating mail server databases.
IP Multicast allows the same message to be sent to many locations at once instead of sending the same message to single locations over and over again. IP Multicasting allows routers to efficiently locate routes to many networks and endusers at once. The protocol also allows a single copy of each packet to be sent on a shared link and ensures that packets are only sent to links that have at least one recipient, thereby addressing both networking load and security concerns.
IP Multicast requires destination hosts wanting to receive a multicast to subscribe (register), using the Internet Group Management Protocol (IGMP). IGMP also supports other related functions, such as leaving a multicast group or specifying an alternate route. Subscribing is done by specifying the Class D IP address used for the particular multicast (similar to tuning to a particular radio station). Routers track such IGMP requests and build a connectivity tree for each possible sender to each registered receiver. When multicast traffic is received from a particular sender, the router uses its tree for that sender to determine on which ports traffic needs to be forwarded. IP Multicast, IGMP, and PIM are further described and defined in RFC 1112 and MBONE Multicasting Tomorrow's Internet, Savetz, Randall and Lepage, IDG Books, Foster City, Calif. 1996.
There are three potential router to router protocols to support routers dynamically learning which multicast group's data need to be sent out which ports. This process is commonly referred to as building trees and the protocols are: Protocol Independent Multicast (PIM) (supported by the ITF and Cisco) which works with more protocols than just TCP/IP; Distance Vector Multicast Routing Protocol (DVMRP, used by MBONE and supported by Bay Networks); and Multicast Open Shortest Path First (MOSPF, supported by Proteon). Apple Simple Multicast Routing Protocol (SMRP) provides similar capabilities but currently only for Appletalk traffic from applications such as Quicktime Conference.
The most common of the router protocols is Protocol Independent Multicast. PIM's big advantage is that it supports multicast traffic over existing unicast routing protocols, such as IGRP, IS--IS, OSPF, and RIP. Protocol Independent Multicast is further defined as having two distinct modes, dense-mode PIM and sparse-mode PIM.
Dense-mode PIM is intended for networks in which most LANs need to receive the multicast (such as LAN TV, corporate information broadcasts, and other broadcast events). It uses reverse path forwarding, in which the traffic is initially sent to (flooded) all router interfaces (except the one on which it arrived). Downstream routers that do not need a traffic feed (either because they have no receivers on their interface or because they are already receiving the feed from another port) reply with a prune message, asking to be removed from the forwarding list (the tree).
Sparse-mode PIM is generally intended for networks in which several different multicasts (each going to a small number of receivers) are typically in progress simultaneously (such as desk top video conferencing, collaborative computing, and whiteboard applications). Senders and receivers first register with a single router, which is designated the rendezvous point. Traffic is sent by the server to the rendezvous point, which then forwards it to the registered receivers. As intermediate routers see the source and destination of the multicast traffic (it is unlikely that the best path from the source to destination goes through the rendezvous point), they optimize the paths so that the traffic takes a more direct route (likely bypassing the rendezvous point). Traffic is still sent to the rendezvous point, in anticipation of new receivers registering.
One of the most prominent developments to arise out of multicasting has been a shift in the way in which information is gathered and distributed on the Internet. Traditionally, information distribution has occurred through the client-pull model. The new paradigm for information retrieval and distribution is the server-push model.
An example of the client-pull model is a user directing a browser to a particular URL (this is a request for information), the server responds by transferring the HTML associated with the specified URL via HTTP, the user's browser decodes the HTML and displays the hypertext document it defines. This is how the user's client application, the browser, "pulls" information off the server. Often the retrieved hypertext document will have tags referring to other URLs which the user can access by selecting the tag and thereby "pulling" even more information off the server.
In the server-push model, a server multicasts ("pushes") information over a communication channel were it can be accessed by multiple clients by tuning into the appropriate channel much in the same way a television is tuned. The new push technology category of software solves three major problems. First, it reduces the bandwidth used by users who are continuously accessing news services via their browsers. Second, because the channels are organized by topic, it frees the user from having to search through information they are not interested in viewing. Third, it allows for greater control over what the users can access, a distinct advantage in an educational or corporate environment.
The server-push model also enhances the options for information distribution across an enterprise. Users can be provided with custom data from news services and other Websites. Users can send out personalized messages with requests for responses, they can send multimedia files, and even request information from remote databases. These messages can be sent in a variety of means, including pop-up boxes, ticker tapes, screen savers, and wallpaper.
The server-push model and the wide variety of "push" technologies derived from it have provided the user with new sources of information and may reduce the amount of time spent actively searching the Internet for information. However, there is as of yet no coherent method for the user to identify what information he wants to receive. In most prior art implementations the user has only limited options for filtering the information being "pushed" at him/her. Furthermore, most prior art implementations of push technology limit the response available to user. In many instances the user gets a URL pushed at him so that he/she ends up reverting to the traditional client-pull model. There is a need for a push based information distribution method which provides a users with a coherent means for filtering what information is received and intelligently responding to the information. There is a further need for a push based information system that is not based upon a store-and-forward model. There is yet a further need for an information server which does not retain any third party information and is therefore able to minimize the need for scale dependent server hardware and the operational complexity associated with a large datacenter.